$(document).ready(function() {
	//加载表格数据
	ajaxTable();
	
	//初始化弹出层
	setDialog_add();
	closeDialog_add();
	setDialog_edit();
	closeDialog_edit();
});

/**--------------table------------------**/
/**
 * 加载表格数据
 */
function ajaxTable(){
	//加载表格
	$('#userInfoTable').datagrid({
		toolbar:[{//正上方工具栏
			text:'添加新用户',
			iconCls:'icon-add',
			handler:function(){
				//点击工具栏运行的js方法
				setDialog_add();
			}
		},'-',{
				text:'批量删除',
				iconCls:'icon-cancel',
				handler:function(){
					batch('delete');
				}
		}],
		type:'post',
		pageNumber : 1,
		loadMsg:'数据加载中,请稍后...',
		pageList:[10,30,50,100], //设置每页显示多少条
		onLoadError:function(){
			alert('数据加载失败!');
		},
		queryParams:{//查询条件
		},
		onClickRow:function(rowIndex, rowData){
			//取消选择某行后高亮
			$('#userInfoTable').datagrid('unselectRow', rowIndex);
		},
		onLoadSuccess:function(){
			var value = $('#userInfoTable').datagrid('getData')['errorMsg'];
			if(value!=null){
				alert("错误消息:"+value);
			}
		}
	}).datagrid('acceptChanges');
}
/**
 * 设置操作列的信息
 * 参数说明
          value 这个可以不管，但是要使用后面 row 和index 这个参数是必须的
          row   当前行的数据
          index 当前行的索引  从0 开始
 */
function optFormater(value,row,index){
	var username = row.username;
	var opt = '';
	var edit = '<a href="#" onclick="openDialog_edit(\''+username+'\')">编辑</a> ';
	var del = '';
	if( "admin" == currentUsername){
		del = '| <a href="#" onclick="doDel(\''+ username+ '\')">删除</a>';
	}
	return opt+edit+del;
};
//刷新表格
function reloadTable(){
	$('#userInfoTable').datagrid('reload');
}


/**--------------添加操作弹出框------------------**/
//设置弹出框的属性
function setDialog_add(){
	$('#userInfoAdd').dialog({
		title : '添加用户',
		modal: true,         	//模式窗口：窗口背景不可操作
		collapsible : true,  	//可折叠，点击窗口右上角折叠图标将内容折叠起来
		resizable : false,    	//可拖动边框大小
		onClose : function(){   //继承自panel的关闭事件
			userInfoAddReset();
		}
	});
}
//打开对话框
function openDialog_add(){
	$('#userInfoAdd').dialog('open');
}
//关闭对话框
function closeDialog_add(){
	$('#userInfoAdd').dialog('close');
}
//执行用户添加操作
function userInfoAdd(){
	var validateResult = true;
	//easyui 表单验证
	$('#table_userInfoAdd input').each(function () {
		if ($(this).attr('required') || $(this).attr('validType')) {
			if (!$(this).validatebox('isValid')) {
				//如果验证不通过，则返回false
				validateResult = false;
				return;
		    }
		}
    });
	if(validateResult==false){
		return;
	}
	
	if( $("#userInfoAdd_password").val() != $("#userInfoAdd_repassword").val()){
		msgShow("错误信息","两次输入密码不一致！","error");
	}
	
	$.ajax({
		async : false,
		cache:false,
		type: 'POST',
		dataType : "json",
		data : {
			"user.username" : $("#userInfoAdd_username").val(),
			"user.password" : $("#userInfoAdd_password").val(),
			"user.filepath" : $("#userInfoAdd_filepath").val()
		},
		url: root+'/user/doAddUser.jhtml',//请求的action路径
		error: function () {//请求失败处理函数
			alert('请求失败');
		},success:function(data){
			var messgage = "添加成功!";
			if(data==null){//未返回任何消息表示添加成功
				userInfoAddReset();
				//刷新列表
				reloadTable();
			}else if(data.errorMsg!=null){//返回异常信息
				messgage = data.errorMsg;
			}
			$("#userInfoAdd_message").html(messgage);
		}
	});
}
//用户添加页面数据重置操作
function userInfoAddReset(){
	$("#userInfoAdd_message").html("");
	$("#userInfoAdd_username").val("");
	$("#userInfoAdd_password").val("");
	$("#userInfoAdd_repassword").val("");
	$("#userInfoAdd_filepath").val("C:\\tmp\\search.txt");
}

/**--------------编辑操作弹出框------------------**/
//设置弹出框的属性
function setDialog_edit(){
	$('#userInfoEdit').dialog({
		title : '用户编辑',
		modal: true,         	//模式窗口：窗口背景不可操作
		collapsible : true,  	//可折叠，点击窗口右上角折叠图标将内容折叠起来
		resizable : false,    	//可拖动边框大小
		onClose : function(){   //继承自panel的关闭事件
			$("#userInfoEdit_message").html("");
			$("#userInfoEdit_password").val("");
			$("#userInfoEdit_repassword").val("");
			$("#userInfoEdit_filepath").val("");
	}
	});
}

//打开对话框
function openDialog_edit(username,filepath){
	userInfoEditReset(username,filepath);
	$('#userInfoEdit').dialog('open');
}

//关闭对话框
function closeDialog_edit(){
	$('#userInfoEdit').dialog('close');
}

//根据用户id查询用户的信息
function userInfoEditReset(username){
	$("#userInfoEdit_message").html("");
	$("#userInfoEdit_username").val(username);
	$("#userInfoEdit_password").val("");
	$("#userInfoEdit_repassword").val("");
	$("#userInfoEdit_filepath").val("C:\\tmp\\search_" + username +".txt");
}

//执行用户编辑操作
function userInfoEdit(){
	var validateResult=true;
	//easyui 表单验证
	$('#table_userInfoEdit input').each(function () {
		if ($(this).attr('required') || $(this).attr('validType')) {
			if (!$(this).validatebox('isValid')) {
				//如果验证不通过，则返回false
				validateResult = false;
				return;
		    }
		}
    });
	if(validateResult==false){
		return;
	}
	
	if( $("#userInfoEdit_password").val() != $("#userInfoEdit_repassword").val()){
		msgShow("错误信息","两次输入密码不一致！","error");
	}
	
	$.ajax({
		async : false,
		cache:false,
		type: 'POST',
		dataType : "json",
		data : {
			"user.username" : $("#userInfoEdit_username").val(),
			"user.password" : $("#userInfoEdit_password").val(),
			"user.filepath" : $("#userInfoEdit_filepath").val()
		},
		url: root+'/user/doEditUser.jhtml',//请求的action路径
		error: function () {//请求失败处理函数
			alert('请求失败');
		},success:function(data){
			var messgage = "修改成功!";
			if(data==null){//未返回任何消息表示添加成功
				//刷新列表
				reloadTable();
			}else if(data.errorMsg!=null){//返回异常信息
				messgage = data.errorMsg;
			}
			$("#userInfoEdit_message").html(messgage);
		}
	});
}


/**
 * 删除操作
 * @return
 */
function doDel( username ){
	$.messager.confirm('删除提示', '你确定永久删除该数据吗?', function(r){
		if (r){
			var url = root+'/user/doDelUser.jhtml?username='+username;
			changeStatus(url);
		}
	});
}

/**
 * 批量删除操作
 * @return
 */
function batch(flag){
	if($('#userInfoTable').datagrid('getSelected')){
		//首先如果用户选择了数据，则获取选择的数据集合
		var ids = [];
		var selectedRow = $('#userInfoTable').datagrid('getSelections');
		for(var i=0;i<selectedRow.length;i++){
			ids.push(selectedRow[i].username);
		}
		var username = ids.join(',');
		
		//删除操作
		$.messager.confirm('删除提示', '你确定永久删除下列用户吗?<br/>'+username, function(r){
			if (r){
				var url = root+'/user/doDelUser.jhtml?username='+username;
				changeStatus(url);
			}
		});
	}//end of if
}
	
/**
 * 修改状态的Ajax
 * @param url
 * @return
 */
function changeStatus(url){
	$.ajax({
		async : false,
		cache:false,
		type: 'POST',
		dataType : "json",
		url:url,//请求的action路径
		error: function () {//请求失败处理函数
			alert('请求失败');
		},success:function(data){
			if(data!=null){//返回异常信息
				$.messager.alert('错误提示',data.errorMsg,'error');
			}
			reloadTable();
		}
	});
}

/**
 * 弹出信息窗口
 * @param title    		标题
 * @param msgString    	提示信息
 * @param msgType    	信息类型 [error,info,question,warning]
 */
function msgShow(title, msgString, msgType) {
	$.messager.alert(title, msgString, msgType);
}